<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui"
      xmlns:composite="http://java.sun.com/jsf/composite">

    <h:head>
        <f:facet name="first">
            <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
        </f:facet>
    </h:head>

    <composite:interface>
        <composite:attribute name="mantCtaBancaria"/>
        <composite:attribute name="accion" method-signature="pe.com.cotelasa.scp.entidad.CuentaBancaria accion()"/>
        <composite:attribute name="isEditable" type="java.lang.Boolean"/>
    </composite:interface>

    <composite:implementation>
        <center>
            <p:panelGrid id="formCtaBancaria" rendered="#{!cc.attrs.isEditable}">
                <p:row>
                    <p:column>
                        <h:outputText id="lblFormBancos" value="BANCO(*): " class="lblForm" />
                    </p:column>
                    <p:column>
                        <p:selectOneMenu id="cbxFormBanco"  required="true"    
                                         value="#{BKComponenteCtaBancaria.idBanco}">
                            <f:selectItem itemValue="" itemLabel="Seleccionar" />
                            <f:selectItems value="#{BKComponenteCtaBancaria.listaBancos}"
                                           var="banco" itemLabel="#{banco.nombre}"
                                           itemValue="#{banco.id}"  />
                        </p:selectOneMenu>
                        <p:message for="cbxFormBanco" display="text"/>
                        <h:outputLink value="#{request.contextPath}#{MBBanco.nuevo()}.anx" target="_blank" class="linkAgregar" >Agregar Banco</h:outputLink>
                    </p:column>
                    <p:column>
                        <h:outputText id="lblFormMoneda" value="MONEDA(*): " class="lblForm" />
                    </p:column>
                    <p:column>
                        <p:selectOneMenu id="cbxFormTipoMoneda" required="true"
                                         value="#{BKComponenteCtaBancaria.idTipoMoneda}">
                            <f:selectItem itemValue="" itemLabel="Seleccionar" />
                            <f:selectItems value="#{BKComponenteCtaBancaria.listaTipoMoneda}"
                                           var="tipoMoneda" itemLabel="#{tipoMoneda.nombre}"
                                           itemValue="#{tipoMoneda.id}" />
                        </p:selectOneMenu>
                        <p:message for="cbxFormTipoMoneda" display="text"/>
                    </p:column>
                </p:row>
                <p:row>
                    <p:column>
                        <h:outputText id="lblFormTipoCuenta" value="TIPO DE CUENTA: " class="lblForm" />
                    </p:column>
                    <p:column>
                        <p:selectOneMenu id="cbxFormTipoCuenta" value="#{BKComponenteCtaBancaria.formularioCtaBancaria.tipoCuenta}">
                            <f:selectItem itemValue="" itemLabel="Seleccionar" />
                            <f:selectItems value="#{BKComponenteCtaBancaria.listaTipoCtaBancaria}"
                                           var="tipoCuenta" itemLabel="#{tipoCuenta.valCadena}"
                                           itemValue="#{tipoCuenta.desParametroDet}"  />
                        </p:selectOneMenu>
                    </p:column>
                    <p:column>
                        <h:outputText id="lblFormNroCuentaBancaria" value="Nº CUENTA BANCARIA: " class="lblForm" />
                    </p:column>
                    <p:column>
                        <p:inputText id="txtFormNroCuentaBancaria" maxlength="100"
                                     value="#{BKComponenteCtaBancaria.formularioCtaBancaria.numeroCuenta}" >
                            <f:validateRegex pattern="[0-9]+([-]?[0-9]+)*" />
                        </p:inputText>
                        <p:message for="txtFormNroCuentaBancaria" display="text"/>
                        <span class="formatComment">Ejemplo: 1-190-12423-23</span>
                    </p:column>
                </p:row>    
                <p:row>     
                    <p:column>
                        <h:outputText id="lblFormCuentaInterbancaria" value="Nº CUENTA INTERBANCARIA: " class="lblForm" />
                    </p:column>
                    <p:column>
                        <p:inputText id="txtFormCuentaInterbancaria" maxlength="100"
                                     value="#{BKComponenteCtaBancaria.formularioCtaBancaria.numeroCuentaInterbancaria}" >
                            <f:validateRegex pattern="[0-9]+([-]?[0-9]+)*" />
                        </p:inputText>
                        <p:message for="txtFormCuentaInterbancaria" display="text"/>
                        <span class="formatComment">Ejemplo: 1-190-12423-23</span>
                    </p:column>
                </p:row>

                <p:row>
                    <p:column colspan="2">
                        <p:commandButton id="btnAgregarCtaBancaria" process="formCtaBancaria"
                                         actionListener="#{MBComponenteCtaBancaria.agregarCtaBancaria}" 
                                         ajax="true" update="dataTablaCtaBancaria,formCtaBancaria" value="Agregar" />
                    </p:column>
                </p:row>
            </p:panelGrid>
        </center>

        <p:panel header="LISTA DE CUENTA BANCARIA">
            <p:dataTable id="dataTablaCtaBancaria" var="cuentaBancaria" value="#{BKComponenteCtaBancaria.listaCtaBancaria}" widgetVar="carsTable"
                         emptyMessage="No se encontraron cuentas bancarias" rowsPerPageTemplate="5,10,15" editable="true"
                         paginator="true" rows="5" paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink}
                         {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" rowIndexVar="rowIndex">
                <p:ajax event="rowEdit" listener="#{MBComponenteCtaBancaria.editarCtaBancaria}"/>

                <p:column id="idColumnaNum" style="width: 5%" headerText="Num.">
                    <h:outputText value="#{rowIndex+1}" />
                </p:column>

                <p:column id="idColumnaBanco" headerText="BANCO" sortBy="#{cuentaBancaria.idBanco.nombre}">
                    <p:cellEditor>
                        <f:facet name="output">  
                            <h:outputText value="#{cuentaBancaria.idBanco.nombre}" /> 
                        </f:facet>  
                        <f:facet name="input">  
                            <p:selectOneMenu value="#{cuentaBancaria.idBanco.id}" required="true" style="width:100%">
                                <f:selectItem itemValue="" itemLabel="Seleccionar" />
                                <f:selectItems value="#{BKComponenteCtaBancaria.listaBancos}"
                                               var="banco" itemLabel="#{banco.nombre}"
                                               itemValue="#{banco.id}"  />
                            </p:selectOneMenu>
                        </f:facet>  
                    </p:cellEditor> 
                </p:column>

                <p:column id="idColumnaMoneda" headerText="MONEDA" sortBy="#{cuentaBancaria.idTipoMoneda.nombre}">
                    <p:cellEditor>
                        <f:facet name="output">  
                            <h:outputText value="#{cuentaBancaria.idTipoMoneda.nombre}" />
                        </f:facet>  
                        <f:facet name="input">  
                            <p:selectOneMenu required="true" value="#{cuentaBancaria.idTipoMoneda.id}" style="width:100%">
                                <f:selectItem itemValue="" itemLabel="Seleccionar" />
                                <f:selectItems value="#{BKComponenteCtaBancaria.listaTipoMoneda}"
                                               var="tipoMoneda" itemLabel="#{tipoMoneda.nombre}"
                                               itemValue="#{tipoMoneda.id}" />
                            </p:selectOneMenu>
                        </f:facet> 
                    </p:cellEditor> 
                </p:column>

                <p:column id="idColumnaTipoCuenta" headerText="TIPO CUENTA" sortBy="#{cuentaBancaria.tipoCuenta}">
                    <p:cellEditor>
                        <f:facet name="output">  
                            <h:outputText value="#{cuentaBancaria.tipoCuenta}" />
                        </f:facet>  
                        <f:facet name="input">  
                            <p:selectOneMenu value="#{cuentaBancaria.tipoCuenta}" style="width:100%">
                                <f:selectItem itemValue="" itemLabel="Seleccionar" />
                                <f:selectItems value="#{BKComponenteCtaBancaria.listaTipoCtaBancaria}"
                                               var="tipoCuenta" itemLabel="#{tipoCuenta.valCadena}"
                                               itemValue="#{tipoCuenta.desParametroDet}"  />
                            </p:selectOneMenu>
                        </f:facet> 
                    </p:cellEditor> 
                </p:column>

                <p:column id="idColumnaCuentaBancaria" headerText="CUENTA BANCARIA" sortBy="#{cuentaBancaria.numeroCuenta}">
                    <p:cellEditor>
                        <f:facet name="output">  
                            <h:outputText value="#{cuentaBancaria.numeroCuenta}" />
                        </f:facet>  
                        <f:facet name="input">  
                            <p:inputText maxlength="100" value="#{cuentaBancaria.numeroCuenta}" style="width:100%">
                                <f:validateRegex pattern="[0-9]+([-]?[0-9]+)*" />
                            </p:inputText>
                        </f:facet>  
                    </p:cellEditor> 
                </p:column>

                <p:column id="idColumnaCuentaInterbancaria" headerText="CUENTA INTERBANCARIA" sortBy="#{cuentaBancaria.numeroCuentaInterbancaria}">
                    <p:cellEditor>
                        <f:facet name="output">  
                            <h:outputText value="#{cuentaBancaria.numeroCuentaInterbancaria}" />
                        </f:facet>  
                        <f:facet name="input">  
                            <p:inputText maxlength="100" value="#{cuentaBancaria.numeroCuentaInterbancaria}" style="width:100%">
                                <f:validateRegex pattern="[0-9]+([-]?[0-9]+)*" />
                            </p:inputText>
                        </f:facet>
                    </p:cellEditor> 
                </p:column>
                <p:column rendered="#{!cc.attrs.isEditable}">
                    <p:commandButton id="btnEliminarCtaBancaria" title="Eliminar" icon="ui-icon-trash"  process="@this"
                                     oncomplete="confirmacion.show()" >
                        <f:setPropertyActionListener value="#{cuentaBancaria}" target="#{BKComponenteCtaBancaria.currentCtaBancaria}" />
                    </p:commandButton >
                    <p:rowEditor />
                </p:column>    
            </p:dataTable>


            <p:confirmDialog id="dlgEliminarCtaBancaria" message="¿ Desea realmente eliminar esta cuenta ?"
                             header="Eliminar Cuenta" severity="alert" widgetVar="confirmacion">
                <h:panelGrid style="width: auto;margin:0px auto;border:0px;padding: 0 5px" columns="2">
                    <p:commandButton id="btnConfEliCtaBancaria" update="dataTablaCtaBancaria" value="Si"  oncomplete="confirmacion.hide()"  
                                     actionListener="#{MBComponenteCtaBancaria.eliminarCtaBancaria}" process="@this" style="text-align: center" immediate="true" />  
                    <p:commandButton id="btnCancEliCtaBancaria" value="No" onclick="confirmacion.hide()" type="button" style="text-align: center" />   
                </h:panelGrid>
            </p:confirmDialog>

        </p:panel>
    </composite:implementation>

</html>